1. Field of the Invention
This invention relates to management of a file system for a file server; in particular, the invention concerns reserving unallocated blocks of the file system based upon a file size for a file.
2. Description of the Related Art
Some conventional file servers (also called “filers”) manage space in a file system by allocating blocks to a file as data for that file is written to the file system. Thus, if the file system runs out of space, a file could end up partially written.
Other conventional file servers, in particular those running CIFS, can allocate blocks for an entire file upon creation of the file. These file servers write zero data to the file system for these blocks. However, this approach is expensive in terms of time required to write the zero data. Furthermore, this approach is actually counterproductive for file servers that use a write anywhere file system layout, also known as WAFL file servers.
In WAFL file servers, when a file is overwritten, new data is written to new blocks, and then the previously allocated blocks are released. Thus, new data is written to different blocks than the previously allocated blocks, resulting in use of extra space for the new blocks until the previously allocated blocks are released. If the file server is close to full, this duplication of blocks could use up the remaining blocks, preventing complete writing of the data.